home *** CD-ROM | disk | FTP | other *** search
/ Graphics Plus / Graphics Plus.iso / amiga / convrtrs / pbmplus / update3.lzh / ppmhist.diff next >
Encoding:
Text File  |  1992-05-16  |  2.4 KB  |  87 lines

  1. *** ppmhist.c.old    Tue Feb 18 16:01:08 1992
  2. --- ppmhist.c    Sat May 16 14:33:37 1992
  3. ***************
  4. *** 35,46 ****
  5.   #ifndef A_FORCEPROTO
  6.       int countcompare();
  7.   #endif /* A_FORCEPROTO */
  8. !     char* usage = "[ppmfile]";
  9.   
  10.       ppm_init( &argc, argv );
  11.   
  12.       argn = 1;
  13.   
  14.       if ( argn != argc )
  15.           {
  16.           ifp = pm_openr( argv[argn] );
  17. --- 35,60 ----
  18.   #ifndef A_FORCEPROTO
  19.       int countcompare();
  20.   #endif /* A_FORCEPROTO */
  21. !     char* usage = "[-map] [ppmfile]";
  22. !     int map;
  23. !     char *pfmt;
  24.   
  25.       ppm_init( &argc, argv );
  26.   
  27. +     map = 0;
  28.       argn = 1;
  29.   
  30. +     while ( argn < argc && argv[argn][0] == '-' && argv[argn][1] != '\0' )
  31. +         {
  32. +         if( pm_keymatch( argv[argn], "-map", 2 ) )
  33. +             map = 1;
  34. +         else if( pm_keymatch( argv[argn], "-nomap", 2 ) )
  35. +             map = 1;
  36. +         else
  37. +             pm_usage( usage );
  38. +         ++argn;
  39. +         }
  40.       if ( argn != argc )
  41.           {
  42.           ifp = pm_openr( argv[argn] );
  43. ***************
  44. *** 63,74 ****
  45.       /* Sort by count. */
  46.       qsort( (char*) chv, colors, sizeof(struct colorhist_item), countcompare );
  47.   
  48.       /* And print the histogram. */
  49.       printf( " r   g   b \tlum\tcount\n" );
  50.       printf( "--- --- ---\t---\t-----\n" );
  51.       for ( i = 0; i < colors; i++ )
  52.           printf(
  53. !             "%3d %3d %3d\t%d\t%d\n", PPM_GETR(chv[i].color),
  54.               PPM_GETG(chv[i].color), PPM_GETB(chv[i].color),
  55.               (int) ( PPM_LUMIN( chv[i].color ) + 0.5 ),
  56.               chv[i].value );
  57. --- 77,104 ----
  58.       /* Sort by count. */
  59.       qsort( (char*) chv, colors, sizeof(struct colorhist_item), countcompare );
  60.   
  61. +     if( map )
  62. +         {
  63. +         printf("P3\n# color map\n%d 1\n%d\n", colors, maxval);
  64. +         printf( "# r   g   b   \tlum\tcount\n" );
  65. +         printf( "#--- --- ---  \t---\t-----\n" );
  66. +         pfmt = " %3d %3d %3d #\t%d\t%d\n";
  67. +         }
  68. +     else
  69. +         {
  70.           /* And print the histogram. */
  71.           printf( " r   g   b \tlum\tcount\n" );
  72.           printf( "--- --- ---\t---\t-----\n" );
  73. +         pfmt = "%3d %3d %3d\t%d\t%d\n";
  74. +         }
  75.       for ( i = 0; i < colors; i++ )
  76.           printf(
  77. !                 pfmt, PPM_GETR(chv[i].color),
  78.                   PPM_GETG(chv[i].color), PPM_GETB(chv[i].color),
  79.                   (int) ( PPM_LUMIN( chv[i].color ) + 0.5 ),
  80.                   chv[i].value );
  81.